package com.hsurosy.hsuchain.nft.auth.exception;

import com.hsurosy.hsuchain.nft.base.exception.ErrorCode;

/**
 * 认证错误码枚举类
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-05 19:26
 * @Description
 * @Version: v1.0.0
 */
public enum AuthErrorCode implements ErrorCode {

    /**
     * 用户状态不可用
     *
     * 当用户尝试进行需要激活的操作时，如果用户的状态不是 "激活" 状态，会返回该错误码。
     */
    USER_STATUS_IS_NOT_ACTIVE("USER_STATUS_IS_NOT_ACTIVE", "用户状态不可用"),

    /**
     * 验证码错误
     *
     * 在用户登录或注册时输入的验证码不正确时，会返回该错误码。
     */
    VERIFICATION_CODE_WRONG("VERIFICATION_CODE_WRONG", "验证码错误"),

    /**
     * 用户信息查询失败
     *
     * 当系统在尝试获取用户信息时发生错误，或者查询不到用户信息时，会返回该错误码。
     */
    USER_QUERY_FAILED("USER_QUERY_FAILED", "用户信息查询失败"),

    /**
     * 用户未登录
     *
     * 用户未登录时，尝试访问需要登录权限的资源或接口，会返回该错误码。
     */
    USER_NOT_LOGIN("USER_NOT_LOGIN", "用户未登录"),

    /**
     * 用户不存在
     *
     * 当系统查询不到对应的用户记录时，返回该错误码。
     */
    USER_NOT_EXIST("USER_NOT_EXIST", "用户不存在");

    /**
     * 错误码，唯一标识错误类型的代码。
     */
    private String code;

    /**
     * 错误信息，用于描述错误的具体内容。
     */
    private String message;

    /**
     * 构造方法，用于初始化错误码和错误信息。
     *
     * @param code    错误码
     * @param message 错误信息
     */
    AuthErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 获取错误码。
     *
     * @return 错误码
     */
    @Override
    public String getCode() {
        return this.code;
    }

    /**
     * 获取错误信息。
     *
     * @return 错误信息
     */
    @Override
    public String getMessage() {
        return this.message;
    }
}

